package com.summer.First.day01;

public class MinStack {
}
//定义栈的数据结构，请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中
//，调用 min、push 及 pop 的时间复杂度都是 O(1)。
//class MinStack {
//    private Stack<Integer> minStack;
//    private Stack<Integer> dataStack;
//
//    public MinStack() {
//        minStack = new Stack<>();
//        dataStack = new Stack<>();
//    }
//
//    public void push(int x) {
//        //Java中的java.util.Stack.peek()方法用于检索或获取Stack的第一个元素或位于Stack顶部的元 素。检索到的元素不会被删除或从堆栈中删除。
//        if(minStack.isEmpty()||minStack.peek()>x){
//            minStack.push(x);
//        }else{
//            minStack.push(minStack.peek());
//        }
//
//        dataStack.push(x);
//
//
//    }
//
//    public void pop() {
//        dataStack.pop();
//        minStack.pop();
//    }
//
//    public int top() {
//        return dataStack.peek();
//    }
//
//    public int min() {
//        return minStack.peek();
//
//    }
//}

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack obj = new MinStack();
 * obj.push(x);
 * obj.pop();
 * int param_3 = obj.top();
 * int param_4 = obj.min();
 */